﻿using System;
using System.Collections.Specialized;
using System.ComponentModel.DataAnnotations;
using System.Web.DynamicData;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using NotAClue.ComponentModel.DataAnnotations;
using NotAClue;
using NotAClue.Web.DynamicData;

namespace DD_Extensions
{
    public partial class ChildrenField : System.Web.DynamicData.FieldTemplateUserControl
    {
        private bool _allowNavigation = true;
        private string _navigateUrl;

        public string NavigateUrl
        {
            get { return _navigateUrl; }
            set { _navigateUrl = value; }
        }

        public bool AllowNavigation
        {
            get { return _allowNavigation; }
            set { _allowNavigation = value; }
        }

        protected void Page_Init(object sender, EventArgs e)
        {
            if (this.IsNavigationDisabled(Column))
                HyperLink1.Enabled = false;

            // add tool-tip
            this.SetupTip();

            // add CSS from meta data
            this.ApplyCss();
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            HyperLink1.Text = "View " + ChildrenColumn.ChildTable.DataContextPropertyName.ToTitleFromPascal();
        }

        protected string GetChildrenPath()
        {
            if (!AllowNavigation)
                return null;

            if (String.IsNullOrEmpty(NavigateUrl))
                return ChildrenPath;
            else
                return BuildChildrenPath(NavigateUrl);
        }

        public override Control DataControl
        {
            get { return HyperLink1; }
        }
    }
}
